package collection;

import java.util.LinkedList;

/**
 * LinkedList特点：
 * 两端效率高
 * 中间效率低
 * 当仅在两端操作数据时选择使用LinkedList
 *
 * LinkedList集合功能: addFirst()头部添加、addLast()尾部添加、
 *                    getFirst()获取头部、getLast()获取尾部、
 *                    removeFirst()删除头部、removeLast()删除尾部
 */
public class LinkedListDemo {
    public static void main(String[] args) {
        //创建一个名为list的LinkedList Integer泛型的集合，名为list
        LinkedList<Integer> list = new LinkedList<>();
        //向集合添加元素
        list.add(100);
        list.add(200);
        System.out.println("list: " + list);        //list:[100,200]

        list.addFirst(500);             //在头部添加500
        list.addLast(600);              //在尾部添加元素600
        System.out.println("list: " + list);        //list: [500, 100, 200, 600]

        //获取头部的元素
        int first = list.getFirst();        //获取头部元素，自动拆箱
        int last = list.getLast();          //获取尾部元素，自动拆箱
        System.out.println(list.get(1));    //输出下标为1的元素
        System.out.println("头部元素为: " + first+"，尾部元素为: " + last);

        //删除元素
        list.removeFirst();                 //删除头部元素
        System.out.println("list: " + list);
        list.removeLast();                  //删除尾部元素
        System.out.println("list: " + list);



    }
}
